package br.com.diego.system.view.action.componente;

import br.com.diego.system.controller.cadastrocomponente.CadastroComponenteBuilder;
import br.com.diego.system.controller.cadastrocomponente.CadastroComponenteFactory;
import br.com.diego.system.controller.cadastrocomponente.CadastroComponenteVo;
import br.com.diego.system.view.action.AbstractDiegoAction;
import br.com.diego.system.view.navigator.Navigator;
import br.com.diego.system.view.navigator.componente.Pages;
import org.springframework.beans.factory.annotation.Autowired;

public class CadastroComponenteAction extends AbstractDiegoAction {

    @Autowired
    private CadastroComponenteBuilder cadastroComponenteBuilder;
    
    @Autowired
    private CadastroComponenteFactory cadastroComponenteFactory;
    
    private CadastroComponenteVo cadastroComponenteVo = new CadastroComponenteVo();
    
    public void limpar() {
        cadastroComponenteVo = new CadastroComponenteVo();
    }

    public void salvar() {
        try {
            cadastroComponenteBuilder.buildSalvar(cadastroComponenteVo);
            setMensagem("Salvo com sucesso!");
            limpar();
        } catch (IllegalArgumentException e) {
            setMensagem(e.getMessage());
        }
    }

    public void deletar() {
        try {
            cadastroComponenteBuilder.buildDeletar(cadastroComponenteVo.getComponenteVo());
            setMensagem("Deletado com sucesso");
            limpar();
        } catch (IllegalArgumentException e) {
            setMensagem(e.getMessage());
        }
    }
    
    public String consultaComponente() {
        Navigator.setPage(Pages.cadastroComponente.name());
        return Pages.consultaComponente.name();
    }

    public CadastroComponenteVo getCadastroComponenteVo() {
        return cadastroComponenteVo;
    }

    public void setCadastroComponenteVo(CadastroComponenteVo cadastroComponenteVo) {
        this.cadastroComponenteVo = cadastroComponenteVo;
    }
    
}